package com.stone.design.mode.iterator;

/**
 * 迭代器测试客户端
 *
 * @author Mr_wenpan@163.com 2022/01/16 13:53
 */
public class Client {

    public static void main(String[] args) {
        // 先创建一个容器
        ConcreteContainer<String> container = new ConcreteContainer<>();
        container.add("hello");
        container.add("wenpan");
        container.add("good morning");
        // 使用自定义迭代器遍历容器中的元素
        Iterator<String> iterator = container.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }
        System.out.println("=============================");
        // 再次使用迭代器遍历容器内的元素
        Iterator<String> iter = container.iterator();
        while (iter.hasNext()) {
            System.out.println(iter.next());
        }

        System.out.println("=================移除之前=================");

        // 使用迭代器移除容器内的一个元素，观察是否对其他迭代器有影响
        Iterator<String> itr = container.iterator();
        itr.remove();

        System.out.println("=================移除之后=================");

        Iterator<String> stringIterator = container.iterator();
        while (stringIterator.hasNext()) {
            System.out.println(stringIterator.next());
        }
    }
}
